package com.admin.rxandroidtest;

import java.util.Map;

import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Part;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;

/**
 * Created by 吴昶 on 2018/8/15.
 */
public interface ConnectionService {

    @GET("api/getlist.php") //数据的地址路径
    Call<ResponseBody> getBlog();//非 Gson 用法

    @GET("api/getlist.php")
    Call<Result> getBlogGson();//无参
    @GET("api/getlist.php")
    Observable<Result> getBlogGsonT();//无参

    @GET("api/getlist.php")
    Call<Result> getBlogGson(@Query("country") String country);//参数较少时可用

    @GET("api/getlist.php")
    Call<Result> getBlogGson(@QueryMap Map<String,String> map);//参数较多时可用

    @GET("api/getlist.php/{id}/list")
    Call<Result> getBlogGson(@Part("id") int id);//替换链接中的字段

    @GET("api/getlist.php/{id}/list")
    Call<Result> getBlogGson(@Part("id") int id,@Query("a") String a);//替换链接中的字段,并传入参数

    //添加请求头部 多种表示方法
    @GET("api/getlist.php")
    Call<Result> getBlogHeader1(@Header("set") String set);

    @Headers("set:xxx-xx-xx")
    @GET("api/getlist.php")
    Call<Result> getBlogHeader2();

    @Headers({
            "set:yyyyyyyyyyyyyy",
            "fg:ppppppppppppppp"
    })
    @GET("api/getlist.php")
    Call<Result> getBlogHeader3();



}
